<template>
  <view class="comB-container">
    <text style="font-size: 32rpx; font-weight: bold; color: #333;">子组件B</text>
    <view class="comB-box" style="margin: 20rpx 0;">
      <text>子组件A传进来的值：</text>
      <text  style="color: #007AFF; font-size: 30rpx;">{{ result }}</text>
    </view>
    <view class="input-group" style="margin: 20rpx 0;">
      <text>回传给父组件：</text>
      <input 
        v-model="callbackValue" 
        style="border: 1px solid #eee; padding: 15rpx; flex: 1; margin-left: 10rpx;"
        placeholder="请输入回传值"
      />
    </view>
    <button 
      type="warn" 
      @click="sendToParent" 
      style="width: 100%;"
    >
      回传给父组件
    </button>
  </view>
</template>

<script>
export default {
  data() {
    return {
      result: "", // 接收兄弟组件A传的值
      callbackValue: "0595-2788888" // 要回传给父组件的值（默认初始值）
    };
  },
  created() {
    // 监听兄弟组件A的全局事件（组件创建时初始化监听）
    uni.$on('getIntent', (msg) => {
      console.warn("子B接收兄弟A传值：", msg);
      this.result = msg; // 更新兄弟传值的显示
    });
  },
  methods: {
    // 给父组件回传值（通过$emit触发父组件监听的事件）
    sendToParent() {
      console.warn("子B给父组件回传值：", this.callbackValue);
      this.$emit('callBackFun', this.callbackValue); // 触发事件，携带回传值
    }
  },
  // 组件卸载时移除全局事件监听（避免内存泄漏）
  beforeDestroy() {
    uni.$off('getIntent');
  }
};
</script>

<style scoped>
.comB-container {
  border: 1px solid #eee;
  padding: 20rpx;
  border-radius: 10rpx;
}
.comB-box {
  padding: 15rpx;
  background: #f9f9f9;
  border-radius: 5rpx;
}
.input-group {
  display: flex;
  align-items: center;
}
</style>